<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
  <title>summernote</title>
  <!-- include jquery -->
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 

  <!-- include libs stylesheets -->
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.css" />
  <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.js"></script>
  <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.js"></script> 

  <!-- include summernote -->
  <link rel="stylesheet" href="../dist/summernote-bs4.css">
  <script type="text/javascript" src="../dist/summernote-bs4.js"></script>

  <script src="https://www.google.com/jsapi" type="text/javascript"></script>

  <script type="text/javascript">
    $(function() {
      $('.summernote').summernote({
        height: 200,
        hint: {
          match: /#(\w{2,})$/,
          search: function(keyword, callback) {
            $.ajax({
              url: 'https://api.github.com/search/repositories?q=' + keyword + '&order=asc'
            }).then(function (data) {
              callback(data.items);
            });
          },
          content: function(item) {
            return '[' + item.full_name + '] ' + item.description;
          },
          template: function(item) {
            return '[<strong>' + item.full_name + '</strong>] ' + item.description;
          }
        }
      });
    });
  </script>
</head>
<body>
<textarea class="summernote">type #su</textarea>
</body>
</html>
